/*
 * Klasse dient dazu, Feeds des angemeldeten Users (mit UserID übermittelt) auszulesen und neue Entries in die Datenbank zu speichern
 *
 */

package com.logic;

import com.mysql.mysqlEntries;
import com.mysql.mysqlFeeds;
import com.objects.entry;
import com.objects.feed;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;

/**
 *
 * @author Dell
 */
public class reader {

    //ArrayList mit den Feeds des Users
    private ArrayList<feed> feeds;

    //Konstruktor, der die UserID übermittelt bekommt und daraus die abonnierten Feeds des Users aus der Datenbank holt
    public reader(int userid) throws Exception
    {
        //Feeds des Users aus der Datenbank holen
        feeds=mysqlFeeds.getFeedsFromUser(userid);
    }

    //Funktion, die die Einträge der Feeds des Users aktualisiert
    public Boolean updateFeeds() throws MalformedURLException, IOException, Exception
    {
        //durchlaufe alle Feeds des Users
        for (int i=0;i<feeds.size();i++)
        {
            //hole für den jeweiligen Feed alle Einträge aus der RSS-URL
            ArrayList<entry> entries=new rssparser(feeds.get(i).getFeedurl(),feeds.get(i).getFeedid()).readFeed();
            //durchlaufe alle Einträge aus der RSS-URL
            for (int j=0;j<entries.size();j++)
            {
                //Wenn die URL des Eintrags noch nicht in der Datenbank ist
                if (!mysqlEntries.checkIfFeedExists(entries.get(j).getEntryURL()))
                {
                    //Dann speichere den Eintrag in die Datenbank
                    mysqlEntries.saveEntry(entries.get(j),feeds.get(i).getFeedid());
                }
            }

        }
        //liefere wahr zurück
        return true;
       
    }
}
